<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>3-IE缓存问题</title>
  <style>
    #box {
      width: 200px;
      height: 200px;
      border: 1px solid #666;
    }
  </style>
</head>

<body>
  <button id="btn">点击发送 AJAX 请求</button>
  <div id="box"></div>

  <script>
    /* 
    IE浏览器的问题: 在第一次ajax请求返回后, 将响应数据缓存起来了,
      后面再发此请求(url/method/参数都不变), 不发请求, 直接使用缓存的数据
    解决: 每次请求都带上一个不一样的参数 => 带上一个时间戳(当前时间值)的参数

    命中缓存 => 用上了缓存
    */
    document.querySelector('#btn').onclick = function () {
      const xhr = new XMLHttpRequest()
      xhr.open('GET', 'http://127.0.0.1:8081/time-server?time=' + Date.now())
      xhr.send()

      // 绑定状态改变的监听
      xhr.onreadystatechange = function () {
        console.log('onreadystatechange readyState', xhr.readyState)
        // 如果请求已经完成, 才去取数据
        if (xhr.readyState === 4) {
          // 响应状态码
          console.log(xhr.status)
          // 响应头
          console.log(xhr.getResponseHeader('Content-Type'))
          // 响应体
          console.log(xhr.responseText)

          // 显示响应体
          document.getElementById('box').innerHTML = xhr.responseText
        }
      }
    }
  </script>
</body>

</html>